package repository

import (
	"context"

	"github.com/devops-smartbot/devops-smartbot/services/alert-service/internal/model"
)

// Repository defines persistence behaviour for alerts.
type Repository interface {
	ListAlerts(ctx context.Context, filter Filter) ([]model.Alert, int64, error)
	GetAlert(ctx context.Context, id string) (*model.Alert, error)
	GetAlertByFingerprint(ctx context.Context, fingerprint string) (*model.Alert, error)
	CreateAlert(ctx context.Context, alert *model.Alert) error
	UpdateAlert(ctx context.Context, alert *model.Alert) error
}

// Filter captures query parameters for listing alerts.
type Filter struct {
	Severity []string
	Status   []string
	Limit    int64
	Offset   int64
}

